package main

import (
	"fmt"
	"unsafe"
)

func main() {
	var arr [6]int = [6]int{1, 2, 3, 4, 5, 6}
	fmt.Println(len(arr))           // 6
	fmt.Println(unsafe.Sizeof(arr)) // 48

	var arr1 [6]int //[0 0 0 0 0 0]

	fmt.Println(arr1)

	// 在右值表达式中使用 ... 省略长度，编译器会自动计算数组的长度
	var arr2 = [...]int{11, 22, 33, 44}
	fmt.Println(arr2)
	fmt.Printf("%T", arr2)

	// 对一个长度较大的稀疏数组进行显式初始化，可通过下标赋值的方式
	var arr3 = [...]int{99: 19}
	fmt.Println(arr3)
	fmt.Printf("%T", arr3) // [100]int
}
